16eba3f9f7c8c198561eb582321c2a372b00ad61,subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ResolveIvyFactory.java,ResolveIvyFactory,create,#ConfigurationInternal#,66

Before Change


        Ivy ivy = ivyFactory.createIvy(ivySettings);
        ResolveData resolveData = createResolveData(ivy, configuration.getName());

        RefreshWhenMissingInAllRepositoriesCachePolicy repositoryAwareCachePolicy = new RefreshWhenMissingInAllRepositoriesCachePolicy(configuration.getResolutionStrategy().getCachePolicy(), moduleResolutionCache, moduleDescriptorCache);

        IvyContextualiser contextualiser = new IvyContextualiser(ivy, resolveData);
        for (DependencyResolver rawResolver : rawResolvers) {
            // TODO:DAZ This could be lazily provided via the ivy context. Then we can change resolverProvider.getResolvers() -> getRepositories().
            rawResolver.setSettings(ivySettings);
            ModuleVersionRepository moduleVersionRepository = new DependencyResolverAdapter(rawResolver);
            repositoryAwareCachePolicy.registerRepository(moduleVersionRepository);
            moduleVersionRepository = new CacheLockingModuleVersionRepository(moduleVersionRepository, cacheLockingManager);
            moduleVersionRepository = startParameterResolutionOverride.overrideModuleVersionRepository(moduleVersionRepository);

            ModuleVersionRepository cachingRepository = new CachingModuleVersionRepository(moduleVersionRepository, moduleResolutionCache, moduleDescriptorCache, artifactAtRepositoryCachedResolutionIndex,
                    repositoryAwareCachePolicy, timeProvider);
            // Need to contextualise outside of caching, since parsing of module descriptors in the cache requires ivy settings, which is provided via the context atm
            ModuleVersionRepository ivyContextualisedRepository = contextualiser.contextualise(ModuleVersionRepository.class, cachingRepository);
            userResolverChain.add(ivyContextualisedRepository);

After Change


            refreshWhenMissingInAllRepositoriesCachePolicy.registerRepository(moduleVersionRepository);
            moduleVersionRepository = new CacheLockingModuleVersionRepository(moduleVersionRepository, cacheLockingManager);
            moduleVersionRepository = startParameterResolutionOverride.overrideModuleVersionRepository(moduleVersionRepository);
            ModuleVersionRepository cachingRepository = new CachingModuleVersionRepository(moduleVersionRepository, moduleResolutionCache, moduleDescriptorCache, artifactAtRepositoryCachedResolutionIndex,
                    new ChainedCachePolicy(configuration.getResolutionStrategy().getCachePolicy(),
                                           new OnlyOncePerRepositoryRefreshModuleCachePolicy(moduleVersionRepository, repositoryLookUpRegistry, refreshWhenMissingInAllRepositoriesCachePolicy)), timeProvider);
            ModuleVersionRepository ivyContextualisedRepository = contextualiser.contextualise(ModuleVersionRepository.class, cachingRepository);
            userResolverChain.add(ivyContextualisedRepository);
        }